package com.cjm.thread.zhonjianjian;

/**
 *  这种方法确实可以复用线程， 但是存在明显的缺陷， 因为一旦不满足运行条件， 就会进行反复无意义的判断， 造成CPU资源的浪费，
 *  另外， 在线程处于休眠状态时， 就算满足执行条件， 也需要等待休眠结束后才能触发检测， 时效性会大打折扣；
 *
 *  1. 无意义的判断
 *  2. 得满足休眠时间， 才能进行一下一次的动作
 */
public class Task1 implements Runnable {
    @Override
    public void run() {
        while (true) {
            if (shouldRun()) {
                doSomeThing();
            } else {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
    private boolean shouldRun() {
        return true;
    }
    private void doSomeThing() {
        System.err.println(Thread.currentThread().getName());
    }
}
